فرض کن یه جعبه ابزار داری که توش ابزارهای مختلف رو میذاری. هر بار که میخوای از یه ابزار استفاده کنی، باید اون رو از جعبه برداریم. توی لینوکس، متغیرها مثل همون جعبه ابزار هستن. اطلاعات رو توی RAM ذخیره میکنن تا برنامهها و اسکریپتها بتونن بهشون دسترسی داشته باشن. این جلسه بهت یاد میده چطور با این جعبهها کار کنی!
متغیرها محلهایی در حافظه RAM هستند که برای ذخیرهسازی اطلاعات استفاده میشوند. این اطلاعات میتوانند شامل اعداد، رشتههای متنی، مسیرها، تنظیمات سیستم و ... باشند. هر برنامه یا اسکریپتی میتواند به این متغیرها دسترسی داشته باشد و از آنها استفاده کند.
در لینوکس، متغیرها به دو دسته اصلی تقسیم میشوند:
export از یک متغیر Local به Global تبدیل میشوند.printenv یا env قابل مشاهده هستند.PATH, HOME, USER= تعریف میشوند (مثل myvar="Hello").printenv قابل مشاهده نیستند.temp_file="/tmp/myfile.txt"
در Bash و Zsh، متغیرها با علامت = تعریف میشوند. نکته: بین نام متغیر، علامت = و مقدار آن فاصله نگذارید!
توضیح: myvar یک متغیر Local است. با $ میتوانیم به مقدار آن دسترسی پیدا کنیم.
= و مقدار آن هیچ فاصلهای نگذارید. myvar = "Hello" اشتباه است!
export
با استفاده از دستور export، یک متغیر Local را به Global تبدیل میکنیم تا در پردازشهای فرزند نیز قابل دسترس باشد.
توضیح: با export، متغیر GLOBAL_VAR در شل جدید (bash) نیز قابل دسترس است.
export استفاده کنید.
printenv (نمایش متغیرهای Global)
printenv همه متغیرهای Global را نمایش میدهد.
توضیح: printenv لیست متغیرهای محیطی (Global) را نمایش میدهد.
echo $VAR (نمایش یک متغیر خاص)
برای نمایش مقدار یک متغیر خاص، از echo $VAR استفاده کنید.
بیایید با یک مثال عملی تفاوت را ببینیم:
توضیح: متغیر Local در شل جدید قابل دسترس نیست، اما متغیر Global قابل دسترس است.
export ساخته میشود و به شلهای فرزند ارثبری میشود.myvar="value" (بدون فاصله)$ (مثل $myvar)printenv یا envexport myvar